/**
 * 
 */
package cz.cuni.mff.abacs.burglar.logics.objects;


/**
 * 
 * 
 * @author abacs
 *
 */
public interface BaseInterface {
	
	
	/** The possible types of objects that can be represented in the game */
	public static enum Type {
		BURGLAR, DOG, GUARD,		// agents
		KEY, LADDER, TREASURE,		// items
		CAMERA, CONTAINER, DOOR, FLOOR, PHONE, SWITCH, VENDER,	// positions
		ALARM,
		ROOM,
	};
	
	
	/**
	 * Returns the id of the object.
	 * 
	 * @return
	 */
	public int getId();

	
	/**
	 * Returns the exact type of the agent.
	 *  
	 * @return
	 */
	public BaseObject.Type getType();
	
	
	/**
	 * 
	 * @param compareWith
	 * @return
	 */
	public boolean isTypeOf(BaseObject.Type compareWith);
	
	
}
